<?php
/**
 * 主流的Web开发模式 MVC
 * Model模型  View视图  Controller控制器
 * Model: 对应数据库，一个Model对应一个数据表，类
 * View：模板，前端的html代码（Js，CSS）
 * Controller：实现业务逻辑
 * 控制器访问模型获取数据渲染到视图中。
 * 访问页面其实是在访问控制器，单一入口文件
 */
// http://app01.test/index.php?c=home&a=index
ini_set('date.timezone', 'PRC');
session_start();
$c = isset($_GET['c']) ? trim($_GET['c']) : 'home';
$a = isset($_GET['a']) ? trim($_GET['a']) : 'index';

$className = 'Controllers\\' . ucfirst(strtolower($c));

spl_autoload_register('autoload');
function autoload($class_name) {
    // ./Controllers/Home.php
    // Controllers\Home
    $filename = './' . str_replace('\\', '/', $class_name) . '.php';
    if (!file_exists($filename)) {
        echo 'The Class ' . $class_name . ' is not exists';
        exit;
    }
    include_once $filename;
}

if (!method_exists($className, $a)) {
    echo 'The method ' . $a . ' is not exists in ' . $className;
    exit;
}

$app = new $className(); // 没有引入，自动调用autoload
echo $app->$a();
